﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace DataBase.Evaluacion
{
    public class BDEvaluacion
    {
        static string conexion = "Data Source=JCIDatabase.db.10200093.hostedresource.com; Initial Catalog=JCIDatabase; User ID=JCIDatabase; Password='ucbJCI2012!'";
        public static Model.Evaluacion CrearEvaluacion(Model.Evaluacion evaluacion)
        {
            if (evaluacion != null)
            {
                try
                {

                    SqlConnection canal = new SqlConnection(conexion);
                    SqlCommand comando = canal.CreateCommand();
                    comando.CommandText = "Insert Into Evaluacion(CodigoPrograma,Resultados,NroParticipantes,Recomendaciones,AccionesTomadas,LogrosAlcanzados) Values (@cod,@res,@nroP,@rec,@acc,@logro)";
                    comando.Parameters.AddWithValue("cod",evaluacion.CodigoPrograma );
                    comando.Parameters.AddWithValue("res", evaluacion.Resultados);
                    comando.Parameters.AddWithValue("nroP", evaluacion.NroParticipantes);
                    comando.Parameters.AddWithValue("rec", evaluacion.Recomendaciones);
                    comando.Parameters.AddWithValue("acc", evaluacion.AccionesTomadas);
                    comando.Parameters.AddWithValue("logro", evaluacion.LogrosAlcanzados);
                    SqlCommand getID = canal.CreateCommand();
                    getID.CommandText = "SELECT @@Identity";
                    canal.Open();
                    comando.ExecuteNonQuery();

                }
                catch (Exception)
                {
                    throw;
                }

            }
            return evaluacion;
        }
        public static Model.Evaluacion ModificarEvaluacion(Model.Evaluacion evaluacion)
        {
            if (evaluacion != null)
            {
                try
                {

                    SqlConnection canal = new SqlConnection(conexion);
                    SqlCommand comando = canal.CreateCommand();
                    comando.CommandText = "Update Evaluacion set Resultados=@res,NroParticipantes=@nroP,Recomendaciones=@rec,AccionesTomadas=@acc,LogrosAlcanzados=@logro Where CodigoPrograma=@codigo";
                    comando.Parameters.AddWithValue("codigo", evaluacion.CodigoPrograma);
                    comando.Parameters.AddWithValue("res", evaluacion.Resultados);
                    comando.Parameters.AddWithValue("nroP", evaluacion.NroParticipantes);
                    comando.Parameters.AddWithValue("rec", evaluacion.Recomendaciones);
                    comando.Parameters.AddWithValue("acc", evaluacion.AccionesTomadas);
                    comando.Parameters.AddWithValue("logro", evaluacion.LogrosAlcanzados);
                    SqlCommand getID = canal.CreateCommand();
                
                    canal.Open();
                    comando.ExecuteNonQuery();

                }
                catch (Exception)
                {
                    throw;
                }

            }
            return evaluacion;
        }
        public static Model.Evaluacion EvaluacionPorCodigo(long id)
        {
            SqlConnection conn = null;
            try
            {
                conn = new SqlConnection(conexion);
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = "SELECT * FROM [EVALUACION] WHERE CodigoPrograma=@id";
                cmd.Parameters.AddWithValue("id", id);
                conn.Open();
                SqlDataReader reader = cmd.ExecuteReader();
                if (!reader.HasRows)
                {
                    return null;
                }


                Model.Evaluacion programa = new Model.Evaluacion();
                while (reader.Read())
                {

                    programa.CodigoPrograma = Int64.Parse(reader["CodigoPrograma"].ToString());
                    programa.AccionesTomadas = reader["AccionesTomadas"].ToString();
                    programa.LogrosAlcanzados = reader["LogrosAlcanzados"].ToString();
                    programa.NroParticipantes = Int32.Parse(reader["NroParticipantes"].ToString());
                    programa.Recomendaciones = (reader["Recomendaciones"].ToString());
                    programa.Resultados = reader["Resultados"].ToString();

                }
                return programa;
            }
            catch (SqlException ex)
            {
                throw new Exception("Error al obtener programa", ex);
            }
            finally
            {
                if (conn != null)
                {
                    conn.Close();
                }
                SqlConnection.ClearAllPools();
            }
        }
    }
}
